package com.hotel.utils;

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Random;

//生成随机数的工具类
public class RandomUtil {
    private static final Random random=new Random();
    //    DecimalFormat 是 NumberFormat 的一个具体子类，用于格式化十进制数字  生成四位和六位的随机数字
    private static final DecimalFormat fourdf=new DecimalFormat("0000");
    private static final DecimalFormat sixdf=new DecimalFormat("000000");
    public static String getFourBitRandom(){
        return fourdf.format(random.nextInt(10000));  //生成在0~10000（不包含10000）之内的的随机数
    }
    public static String getSixBitRandom(){
        return fourdf.format(random.nextInt(1000000));
    }

    /**
     * 给定数组，抽取n个数据
     * @param list
     * @param n
     * @return
     */
    public static ArrayList getRandom(List list, int n){
        Random random=new Random();
//        创建一个hashMap来存放随机数
        HashMap<Object,Object> hashMap=new HashMap<>();
        for(int i=0;i<list.size();i++){
//            生成0-100的随机数
            int number=random.nextInt(100)+1;
            hashMap.put(number,i);
        }
//        从hashMap中导入数组
        Object[] objects=hashMap.values().toArray();   //取出hashmap中的values集合转成数组
        ArrayList arrayList=new ArrayList();
//        遍历数组中抽取到的n个数并打印
        for(int i=0; i<n;i++){
            arrayList.add(list.get((int)objects[i])+"\t");
        }
        System.out.println("\n");
        return arrayList;
    }
}
